
#ifndef __THREAD_LOCAL_STORAGE_H__
#define __THREAD_LOCAL_STORAGE_H__


template < typename type >
class tls
{
	typedef unsigned long	index_t ;

public:
	tls ( void ) ;
	tls ( tls & rhs ) ;
	~tls ( void ) ;

public:
	type &	operator * (void) ;
	type *	operator -> (void) ;

	tls &	operator = (const tls & rhs) ;

private:
	index_t		index_ ;
};


#include "tls.inl"

#endif	// #ifndef __THREAD_LOCAL_STORAGE_H__